Day2 - GPT 陪我讀 W3C Trace Context Ch1
Day3- GPT 陪我讀 W3C Trace Context Ch2
Day4- GPT陪我讀 W3C Trace Context Ch3 追蹤上下文 HTTP 標頭格式 第一部份
Day5- GPT陪我讀 W3C Trace Context Ch3 追蹤上下文 HTTP 標頭格式 第二部份
Day6- GPT陪我讀 W3C Trace Context Ch3 追蹤上下文 HTTP 標頭格式 第三部份
Day7- GPT 陪我讀 W3C Trace Context Ch4
Day8- GPT 陪我讀 W3C Trace Context Ch5-6
第 4 章描述了如何處理追踪上下文header的模型,包括在不同情境(如接收或未接收追踪parent header)下供應商的行為。描述中也涉及追踪上下文header可能的變動,以及在特定條件下可能的行動。
這部分不具規範性。
此節提供了一個逐步的示例,展示追踪供應商如何接收帶有追踪上下文header的請求,處理請求,然後可能將其轉發。當實施符合追踪上下文的追踪系統、中間件(如代理或消息總線)或雲服務時,此描述可作為參考。
這一處理模型描述了修改和轉發追踪上下文header的供應商的行為。該模型的工作方式取決於是否接收到 traceparent
header。
如果沒有接收到追踪parent header:
traceparent
header和 tracestate
header。traceparent
header,供應商會創建一個新的 trace-id
和 parent-id
來代表當前的請求。tracestate
header但未伴隨 traceparent
header,則它是無效的,且MUST被丟棄。tracestate
header並添加一個新的鍵 / 值對。traceparent
header和 tracestate
header。當接收到 traceparent
header時:
供應商檢查傳入的請求是否有 traceparent
和 tracestate
header。
解釋:供應商首先確認是否存在這兩個追踪相關的header資訊。
因為 traceparent
header存在,供應商嘗試解析 traceparent
header的版本。
解釋:traceparent header有不同的版本,供應商需要確定它能正確理解並處理該版本。
traceparent
header並刪除 tracestate
。00
)來解析 trace-id
和 parent-id
。供應商只會解析此規範版本支持的 trace-flags
值,並忽略所有其他值。如果解析失敗,供應商將創建一個新的 traceparent
parent並刪除 tracestate
。供應商會在外發請求中將所有未解析/未知的 trace-flags
設置為0。trace-id
和 parent-id
。如果 trace-id
、parent-id
或 trace-flags
之一無效,供應商創建新的 traceparent
header並刪除 tracestate
。供應商MAY驗證 tracestate
header。如果 tracestate
header不能被解析,供應商可以選擇丟棄整個header。無效的 tracestate
項目也可能被丟棄。
解釋:供應商會確認 tracestate 的有效性,並在必要時進行調整或丟棄。
對於每個外發請求,供應商執行以下步驟:
traceparent
header:
parent-id
:屬性 parent-id
的值MUST設置為代表當前操作的 ID。sampled
:sampled
的值反映了呼叫者的錄製行為。如果有可能記錄追踪數據,trace-flags
的 sampled
標誌可能設置為 1,否則設置為 0。設置此標誌並不保證追踪將被記錄,但增加了端到端記錄追踪的可能性。tracestate
header:
traceparent
和 tracestate
header。總之,這部分詳細描述了當供應商接收到 traceparent header時,它如何處理和更新追踪資訊,以確保資訊的完整性和有效性。
上述處理模型描述了處理追踪上下文header的完整步驟集。然而,有些情況下供應商可能只支持上述描述的部分步驟。代理或消息中間件MAY決定不修改 traceparent
headers,但會移除無效的header或向 tracestate
添加額外信息。
根據是否接收到追踪parent header,供應商的行為模式有所不同。沒有追踪parent header時,會創建新的追踪ID和父ID;有追踪parent header時,會嘗試解析和驗證其內容,然後根據結果執行不同的操作。對於每一個外發請求,供應商都會更新追踪parent header和追踪狀態頭。此外,還考慮了供應商可能只實施部分處理步驟的情況。